--- /dev/null
+No,Latitude,Longitude,Date,Time\r
+1,66.000103,-179.979040,2022/01/01,00:00:00\r
+2,66.000146,-179.979035,2022/01/01,00:00:01\r
+3,66.000188,-179.979030,2022/01/01,00:00:02\r
+4,66.000106,-179.979250,2022/01/01,00:00:03\r
+5,66.000023,-179.979470,2022/01/01,00:00:04\r
+6,66.000034,-179.979775,2022/01/01,00:00:05\r
+7,66.000045,-179.980080,2022/01/01,00:00:06\r
+8,66.000111,-179.980280,2022/01/01,00:00:07\r
+9,66.000177,-179.980480,2022/01/01,00:00:08\r
+10,66.000143,-179.980575,2022/01/01,00:00:09\r
+11,66.000109,-179.980670,2022/01/01,00:00:10\r
+12,66.000138,-179.981320,2022/01/01,00:00:11\r
+13,66.000167,-179.981970,2022/01/01,00:00:12\r
+14,66.000121,-179.982585,2022/01/01,00:00:13\r
+15,66.000075,-179.983200,2022/01/01,00:00:14\r
+16,66.000105,-179.983745,2022/01/01,00:00:15\r
+17,66.000134,-179.984290,2022/01/01,00:00:16\r
+18,66.000128,-179.984740,2022/01/01,00:00:17\r
+19,66.000121,-179.985190,2022/01/01,00:00:18\r
+20,66.000159,-179.985385,2022/01/01,00:00:19\r
+21,66.000197,-179.985580,2022/01/01,00:00:20\r
+22,66.000177,-179.986145,2022/01/01,00:00:21\r
+23,66.000158,-179.986710,2022/01/01,00:00:22\r
+24,66.000148,-179.987380,2022/01/01,00:00:23\r
+25,66.000138,-179.988050,2022/01/01,00:00:24\r
+26,66.000154,-179.988555,2022/01/01,00:00:25\r
+27,66.000171,-179.989060,2022/01/01,00:00:26\r
+28,66.000111,-179.989380,2022/01/01,00:00:27\r
+29,66.000050,-179.989700,2022/01/01,00:00:28\r
+30,66.000058,-179.990500,2022/01/01,00:00:29\r
+31,66.000066,-179.991300,2022/01/01,00:00:30\r
+32,66.000056,-179.991565,2022/01/01,00:00:31\r
+33,66.000046,-179.991830,2022/01/01,00:00:32\r
+34,66.000089,-179.992615,2022/01/01,00:00:33\r
+35,66.000131,-179.993400,2022/01/01,00:00:34\r
+36,66.000110,-179.993620,2022/01/01,00:00:35\r
+37,66.000088,-179.993840,2022/01/01,00:00:36\r
+38,66.000127,-179.994440,2022/01/01,00:00:37\r
+39,66.000165,-179.995040,2022/01/01,00:00:38\r
+40,66.000180,-179.995500,2022/01/01,00:00:39\r
+41,66.000196,-179.995960,2022/01/01,00:00:40\r
+42,66.000177,-179.996665,2022/01/01,00:00:41\r
+43,66.000158,-179.997370,2022/01/01,00:00:42\r
+44,66.000130,-179.997675,2022/01/01,00:00:43\r
+45,66.000103,-179.997980,2022/01/01,00:00:44\r
+46,66.000104,-179.998505,2022/01/01,00:00:45\r
+47,66.000106,-179.999030,2022/01/01,00:00:46\r
+48,66.000082,-179.999295,2022/01/01,00:00:47\r
+49,66.000057,-179.999560,2022/01/01,00:00:48\r
+50,66.000050,179.999795,2022/01/01,00:00:49\r
+51,66.000042,179.999150,2022/01/01,00:00:50\r
+52,66.000096,179.998730,2022/01/01,00:00:51\r
+53,66.000150,179.998310,2022/01/01,00:00:52\r
+54,66.000172,179.997530,2022/01/01,00:00:53\r
+55,66.000193,179.996750,2022/01/01,00:00:54\r
+56,66.000160,179.996480,2022/01/01,00:00:55\r
+57,66.000128,179.996210,2022/01/01,00:00:56\r
+58,66.000110,179.995570,2022/01/01,00:00:57\r
+59,66.000091,179.994930,2022/01/01,00:00:58\r
+60,66.000141,179.994275,2022/01/01,00:00:59\r
+61,66.000191,179.993620,2022/01/01,00:01:00\r
+62,66.000124,179.993275,2022/01/01,00:01:01\r
+63,66.000057,179.992930,2022/01/01,00:01:02\r
+64,66.000077,179.992520,2022/01/01,00:01:03\r
+65,66.000098,179.992110,2022/01/01,00:01:04\r
+66,66.000069,179.991745,2022/01/01,00:01:05\r
+67,66.000040,179.991380,2022/01/01,00:01:06\r
+68,66.000077,179.990915,2022/01/01,00:01:07\r
+69,66.000114,179.990450,2022/01/01,00:01:08\r
+70,66.000096,179.989495,2022/01/01,00:01:09\r
+71,66.000077,179.988540,2022/01/01,00:01:10\r
+72,66.000045,179.988185,2022/01/01,00:01:11\r
+73,66.000013,179.987830,2022/01/01,00:01:12\r
+74,66.000095,179.987410,2022/01/01,00:01:13\r
+75,66.000176,179.986990,2022/01/01,00:01:14\r
+76,66.000098,179.986525,2022/01/01,00:01:15\r
+77,66.000021,179.986060,2022/01/01,00:01:16\r
+78,66.000057,179.985720,2022/01/01,00:01:17\r
+79,66.000093,179.985380,2022/01/01,00:01:18\r
+80,66.000146,179.984835,2022/01/01,00:01:19\r
+81,66.000199,179.984290,2022/01/01,00:01:20\r
+82,66.000192,179.983700,2022/01/01,00:01:21\r
+83,66.000184,179.983110,2022/01/01,00:01:22\r
+84,66.000153,179.982810,2022/01/01,00:01:23\r
+85,66.000122,179.982510,2022/01/01,00:01:24\r
+86,66.000112,179.982165,2022/01/01,00:01:25\r
+87,66.000102,179.981820,2022/01/01,00:01:26\r
+88,66.000124,179.981825,2022/01/01,00:01:27\r
+89,66.000147,179.981830,2022/01/01,00:01:28\r
+90,66.000109,179.981790,2022/01/01,00:01:29\r
+91,66.000071,179.981750,2022/01/01,00:01:30\r
+92,66.000072,179.981765,2022/01/01,00:01:31\r
+93,66.000073,179.981780,2022/01/01,00:01:32\r
+94,66.000120,179.981700,2022/01/01,00:01:33\r
+95,66.000167,179.981620,2022/01/01,00:01:34\r
--- /dev/null
+No,Latitude,Longitude,Date,Time\r
+1,66.000103,-179.979040,2022/01/01,00:00:00\r
+2,66.000146,-179.979035,2022/01/01,00:00:00.250\r
+3,66.000188,-179.979030,2022/01/01,00:00:00.500\r
+4,66.000106,-179.979250,2022/01/01,00:00:00.750\r
+5,66.000023,-179.979470,2022/01/01,00:00:01\r
+6,66.000034,-179.979775,2022/01/01,00:00:01.250\r
+7,66.000045,-179.980080,2022/01/01,00:00:01.500\r
+8,66.000111,-179.980280,2022/01/01,00:00:01.750\r
+9,66.000177,-179.980480,2022/01/01,00:00:02\r
+10,66.000143,-179.980575,2022/01/01,00:00:02.250\r
+11,66.000109,-179.980670,2022/01/01,00:00:02.500\r
+12,66.000138,-179.981320,2022/01/01,00:00:02.750\r
+13,66.000167,-179.981970,2022/01/01,00:00:03\r
+14,66.000121,-179.982585,2022/01/01,00:00:03.250\r
+15,66.000075,-179.983200,2022/01/01,00:00:03.500\r
+16,66.000105,-179.983745,2022/01/01,00:00:03.750\r
+17,66.000134,-179.984290,2022/01/01,00:00:04\r
+18,66.000128,-179.984740,2022/01/01,00:00:04.250\r
+19,66.000121,-179.985190,2022/01/01,00:00:04.500\r
+20,66.000159,-179.985385,2022/01/01,00:00:04.750\r
+21,66.000197,-179.985580,2022/01/01,00:00:05\r
+22,66.000177,-179.986145,2022/01/01,00:00:05.250\r
+23,66.000158,-179.986710,2022/01/01,00:00:05.500\r
+24,66.000148,-179.987380,2022/01/01,00:00:05.750\r
+25,66.000138,-179.988050,2022/01/01,00:00:06\r
+26,66.000154,-179.988555,2022/01/01,00:00:06.250\r
+27,66.000171,-179.989060,2022/01/01,00:00:06.500\r
+28,66.000111,-179.989380,2022/01/01,00:00:06.750\r
+29,66.000050,-179.989700,2022/01/01,00:00:07\r
+30,66.000058,-179.990500,2022/01/01,00:00:07.250\r
+31,66.000066,-179.991300,2022/01/01,00:00:07.500\r
+32,66.000056,-179.991565,2022/01/01,00:00:07.750\r
+33,66.000046,-179.991830,2022/01/01,00:00:08\r
+34,66.000089,-179.992615,2022/01/01,00:00:08.250\r
+35,66.000131,-179.993400,2022/01/01,00:00:08.500\r
+36,66.000110,-179.993620,2022/01/01,00:00:08.750\r
+37,66.000088,-179.993840,2022/01/01,00:00:09\r
+38,66.000127,-179.994440,2022/01/01,00:00:09.250\r
+39,66.000165,-179.995040,2022/01/01,00:00:09.500\r
+40,66.000180,-179.995500,2022/01/01,00:00:09.750\r
+41,66.000196,-179.995960,2022/01/01,00:00:10\r
+42,66.000177,-179.996665,2022/01/01,00:00:10.250\r
+43,66.000158,-179.997370,2022/01/01,00:00:10.500\r
+44,66.000130,-179.997675,2022/01/01,00:00:10.750\r
+45,66.000103,-179.997980,2022/01/01,00:00:11\r
+46,66.000104,-179.998505,2022/01/01,00:00:11.250\r
+47,66.000106,-179.999030,2022/01/01,00:00:11.500\r
+48,66.000082,-179.999295,2022/01/01,00:00:11.750\r
+49,66.000057,-179.999560,2022/01/01,00:00:12\r
+50,66.000050,179.999795,2022/01/01,00:00:12.250\r
+51,66.000042,179.999150,2022/01/01,00:00:12.500\r
+52,66.000096,179.998730,2022/01/01,00:00:12.750\r
+53,66.000150,179.998310,2022/01/01,00:00:13\r
+54,66.000172,179.997530,2022/01/01,00:00:13.250\r
+55,66.000193,179.996750,2022/01/01,00:00:13.500\r
+56,66.000160,179.996480,2022/01/01,00:00:13.750\r
+57,66.000128,179.996210,2022/01/01,00:00:14\r
+58,66.000110,179.995570,2022/01/01,00:00:14.250\r
+59,66.000091,179.994930,2022/01/01,00:00:14.500\r
+60,66.000141,179.994275,2022/01/01,00:00:14.750\r
+61,66.000191,179.993620,2022/01/01,00:00:15\r
+62,66.000124,179.993275,2022/01/01,00:00:15.250\r
+63,66.000057,179.992930,2022/01/01,00:00:15.500\r
+64,66.000077,179.992520,2022/01/01,00:00:15.750\r
+65,66.000098,179.992110,2022/01/01,00:00:16\r
+66,66.000069,179.991745,2022/01/01,00:00:16.250\r
+67,66.000040,179.991380,2022/01/01,00:00:16.500\r
+68,66.000077,179.990915,2022/01/01,00:00:16.750\r
+69,66.000114,179.990450,2022/01/01,00:00:17\r
+70,66.000096,179.989495,2022/01/01,00:00:17.250\r
+71,66.000077,179.988540,2022/01/01,00:00:17.500\r
+72,66.000045,179.988185,2022/01/01,00:00:17.750\r
+73,66.000013,179.987830,2022/01/01,00:00:18\r
+74,66.000095,179.987410,2022/01/01,00:00:18.250\r
+75,66.000176,179.986990,2022/01/01,00:00:18.500\r
+76,66.000098,179.986525,2022/01/01,00:00:18.750\r
+77,66.000021,179.986060,2022/01/01,00:00:19\r
+78,66.000057,179.985720,2022/01/01,00:00:19.250\r
+79,66.000093,179.985380,2022/01/01,00:00:19.500\r
+80,66.000146,179.984835,2022/01/01,00:00:19.750\r
+81,66.000199,179.984290,2022/01/01,00:00:20\r
+82,66.000192,179.983700,2022/01/01,00:00:20.250\r
+83,66.000184,179.983110,2022/01/01,00:00:20.500\r
+84,66.000153,179.982810,2022/01/01,00:00:20.750\r
+85,66.000122,179.982510,2022/01/01,00:00:21\r
+86,66.000112,179.982165,2022/01/01,00:00:21.250\r
+87,66.000102,179.981820,2022/01/01,00:00:21.500\r
+88,66.000124,179.981825,2022/01/01,00:00:21.750\r
+89,66.000147,179.981830,2022/01/01,00:00:22\r
+90,66.000109,179.981790,2022/01/01,00:00:22.250\r
+91,66.000071,179.981750,2022/01/01,00:00:22.500\r
+92,66.000072,179.981765,2022/01/01,00:00:22.750\r
+93,66.000073,179.981780,2022/01/01,00:00:23\r
+94,66.000120,179.981700,2022/01/01,00:00:23.250\r
+95,66.000167,179.981620,2022/01/01,00:00:23.500\r
# speed with msec
gpsbabel -t -i unicsv -f ${REFERENCE}/track/utm_subsecond_track.csv -x track,speed -o unicsv,utc -F ${TMPDIR}/utm_subsecond_track~csv.csv
compare ${REFERENCE}/track/utm_subsecond_track~csv.csv ${TMPDIR}/utm_subsecond_track~csv.csv
+
+# faketime, with and witout partial second steps
+gpsbabel -t -i unicsv -f ${REFERENCE}/track/simint.csv -x track,faketime=f2022+0.25 -o unicsv,utc -F ${TMPDIR}/simint250m.csv
+compare ${REFERENCE}/track/simint250m.csv ${TMPDIR}/simint250m.csv
+gpsbabel -t -i unicsv -f ${REFERENCE}/track/simint.csv -x track,faketime=f2022+.25 -o unicsv,utc -F ${TMPDIR}/simint250m_2.csv
+compare ${REFERENCE}/track/simint250m.csv ${TMPDIR}/simint250m_2.csv
+gpsbabel -t -i unicsv -f ${REFERENCE}/track/simint.csv -x track,faketime=f2022+1 -o unicsv,utc -F ${TMPDIR}/simint1000m.csv
+compare ${REFERENCE}/track/simint1000m.csv ${TMPDIR}/simint1000m.csv
+
+
{
faketime_t result;
- static const QRegularExpression re(R"(^(f?)(\d{0,14})(?:\+(\d{1,10}))?$)");
+ static const QRegularExpression re(R"(^(f?)(\d{0,14})(?:\+(\d+(?:\.\d*)?|\.\d+))?$)");
assert(re.isValid());
QRegularExpressionMatch match = re.match(timestr);
if (match.hasMatch()) {
if (match.capturedLength(3) > 0) {
bool ok;
- result.step = match.captured(3).toInt(&ok);
+ result.step = llround(1000.0 * match.captured(3).toDouble(&ok));
if (!ok) {
fatal(MYNAME "-faketime-check: Invalid step \"%s\"!\n", qPrintable(match.captured(3)));
}
}
#ifdef TRACKF_DBG
- qDebug() << MYNAME "-faketime option: force =" << result.force << ", timestamp =" << result.start << ", step =" << result.step;
+ qDebug() << MYNAME "-faketime option: force =" << result.force << ", timestamp =" << result.start << ", step =" << result.step << "milliseconds";
#endif
} else {
fatal(MYNAME "-faketime-check: Invalid value for faketime option \"%s\"!\n", timestr);
if (!wpt->creation_time.isValid() || faketime.force) {
wpt->creation_time = faketime.start;
- faketime.start = faketime.start.addSecs(faketime.step);
+ faketime.start = faketime.start.addMSecs(faketime.step);
}
}
}
struct faketime_t {
QDateTime start;
- int step{0};
+ long long step{0};
bool force{false};
};